/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: geocoding_data.proto
// Protobuf C++ Version: 5.29.4

#include "geocoding_data.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace i18n {
namespace phonenumbers {

inline constexpr PrefixesInfo::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prefixes_{},
        descriptions_{},
        lengths_{},
        prefixes_num_{0},
        lengths_num_{0} {}

template <typename>
PROTOBUF_CONSTEXPR PrefixesInfo::PrefixesInfo(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PrefixesInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrefixesInfoDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrefixesInfoDefaultTypeInternal() {}
  union {
    PrefixesInfo _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrefixesInfoDefaultTypeInternal _PrefixesInfo_default_instance_;

inline constexpr LanguageCodeInfo::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        language_codes_{},
        language_codes_num_{0} {}

template <typename>
PROTOBUF_CONSTEXPR LanguageCodeInfo::LanguageCodeInfo(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct LanguageCodeInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LanguageCodeInfoDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~LanguageCodeInfoDefaultTypeInternal() {}
  union {
    LanguageCodeInfo _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LanguageCodeInfoDefaultTypeInternal _LanguageCodeInfo_default_instance_;

inline constexpr CountryCodeInfo::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        country_codes_{},
        country_codes_num_{0} {}

template <typename>
PROTOBUF_CONSTEXPR CountryCodeInfo::CountryCodeInfo(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct CountryCodeInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CountryCodeInfoDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~CountryCodeInfoDefaultTypeInternal() {}
  union {
    CountryCodeInfo _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CountryCodeInfoDefaultTypeInternal _CountryCodeInfo_default_instance_;

inline constexpr CountriesInfo::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        country_languages_{},
        country_languages_num_{0} {}

template <typename>
PROTOBUF_CONSTEXPR CountriesInfo::CountriesInfo(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct CountriesInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CountriesInfoDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~CountriesInfoDefaultTypeInternal() {}
  union {
    CountriesInfo _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CountriesInfoDefaultTypeInternal _CountriesInfo_default_instance_;

inline constexpr GeocodingInfo::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        prefixes_info_{},
        languages_{},
        countries_info_{},
        countries_{},
        language_code_info_{nullptr},
        country_code_info_{nullptr} {}

template <typename>
PROTOBUF_CONSTEXPR GeocodingInfo::GeocodingInfo(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct GeocodingInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GeocodingInfoDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~GeocodingInfoDefaultTypeInternal() {}
  union {
    GeocodingInfo _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GeocodingInfoDefaultTypeInternal _GeocodingInfo_default_instance_;
}  // namespace phonenumbers
}  // namespace i18n
namespace i18n {
namespace phonenumbers {
// ===================================================================

class GeocodingInfo::_Internal {
 public:
  using HasBits =
      decltype(std::declval<GeocodingInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000003) ^ 0x00000003) != 0;
  }
};

GeocodingInfo::GeocodingInfo(::google::protobuf::Arena* arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.GeocodingInfo)
}
inline PROTOBUF_NDEBUG_INLINE GeocodingInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
    const Impl_& from, const ::i18n::phonenumbers::GeocodingInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        prefixes_info_{visibility, arena, from.prefixes_info_},
        languages_{visibility, arena, from.languages_},
        countries_info_{visibility, arena, from.countries_info_},
        countries_{visibility, arena, from.countries_} {}

GeocodingInfo::GeocodingInfo(
    ::google::protobuf::Arena* arena,
    const GeocodingInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  GeocodingInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.language_code_info_ = (cached_has_bits & 0x00000001u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::LanguageCodeInfo>(
                              arena, *from._impl_.language_code_info_)
                        : nullptr;
  _impl_.country_code_info_ = (cached_has_bits & 0x00000002u) ? ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::CountryCodeInfo>(
                              arena, *from._impl_.country_code_info_)
                        : nullptr;

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.GeocodingInfo)
}
inline PROTOBUF_NDEBUG_INLINE GeocodingInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility,
    ::google::protobuf::Arena* arena)
      : _cached_size_{0},
        prefixes_info_{visibility, arena},
        languages_{visibility, arena},
        countries_info_{visibility, arena},
        countries_{visibility, arena} {}

inline void GeocodingInfo::SharedCtor(::_pb::Arena* arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, language_code_info_),
           0,
           offsetof(Impl_, country_code_info_) -
               offsetof(Impl_, language_code_info_) +
               sizeof(Impl_::country_code_info_));
}
GeocodingInfo::~GeocodingInfo() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.GeocodingInfo)
  SharedDtor(*this);
}
inline void GeocodingInfo::SharedDtor(MessageLite& self) {
  GeocodingInfo& this_ = static_cast<GeocodingInfo&>(self);
  this_._internal_metadata_.Delete<std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.language_code_info_;
  delete this_._impl_.country_code_info_;
  this_._impl_.~Impl_();
}

inline void* GeocodingInfo::PlacementNew_(const void*, void* mem,
                                        ::google::protobuf::Arena* arena) {
  return ::new (mem) GeocodingInfo(arena);
}
constexpr auto GeocodingInfo::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.prefixes_info_) +
          decltype(GeocodingInfo::_impl_.prefixes_info_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.languages_) +
          decltype(GeocodingInfo::_impl_.languages_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.countries_info_) +
          decltype(GeocodingInfo::_impl_.countries_info_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.countries_) +
          decltype(GeocodingInfo::_impl_.countries_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(GeocodingInfo), alignof(GeocodingInfo), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&GeocodingInfo::PlacementNew_,
                                 sizeof(GeocodingInfo),
                                 alignof(GeocodingInfo));
  }
}
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite<32> GeocodingInfo::_class_data_ = {
    {
        &_GeocodingInfo_default_instance_._instance,
        &_table_.header,
        nullptr,  // OnDemandRegisterArenaDtor
        GeocodingInfo::IsInitializedImpl,
        &GeocodingInfo::MergeImpl,
        ::google::protobuf::MessageLite::GetNewImpl<GeocodingInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
        &GeocodingInfo::SharedDtor,
        ::google::protobuf::MessageLite::GetClearImpl<GeocodingInfo>(), &GeocodingInfo::ByteSizeLong,
            &GeocodingInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
        PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_._cached_size_),
        true,
    },
    "i18n.phonenumbers.GeocodingInfo",
};
const ::google::protobuf::internal::ClassData* GeocodingInfo::GetClassData() const {
  return _class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 6, 4, 0, 2> GeocodingInfo::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_._has_bits_),
    0, // no _extensions_
    6, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967232,  // skipmap
    offsetof(decltype(_table_), field_entries),
    6,  // num_field_entries
    4,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    _class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallbackLite,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::i18n::phonenumbers::GeocodingInfo>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // repeated .i18n.phonenumbers.PrefixesInfo prefixes_info = 1;
    {::_pbi::TcParser::FastMtR1,
     {10, 63, 0, PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.prefixes_info_)}},
    // repeated string languages = 2;
    {::_pbi::TcParser::FastBR1,
     {18, 63, 0, PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.languages_)}},
    // required .i18n.phonenumbers.LanguageCodeInfo language_code_info = 3;
    {::_pbi::TcParser::FastMtS1,
     {26, 0, 1, PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.language_code_info_)}},
    // repeated .i18n.phonenumbers.CountriesInfo countries_info = 4;
    {::_pbi::TcParser::FastMtR1,
     {34, 63, 2, PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.countries_info_)}},
    // repeated int32 countries = 5;
    {::_pbi::TcParser::FastV32R1,
     {40, 63, 0, PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.countries_)}},
    // required .i18n.phonenumbers.CountryCodeInfo country_code_info = 6;
    {::_pbi::TcParser::FastMtS1,
     {50, 1, 3, PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.country_code_info_)}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // repeated .i18n.phonenumbers.PrefixesInfo prefixes_info = 1;
    {PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.prefixes_info_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated string languages = 2;
    {PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.languages_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
    // required .i18n.phonenumbers.LanguageCodeInfo language_code_info = 3;
    {PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.language_code_info_), _Internal::kHasBitsOffset + 0, 1,
    (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .i18n.phonenumbers.CountriesInfo countries_info = 4;
    {PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.countries_info_), -1, 2,
    (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated int32 countries = 5;
    {PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.countries_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    // required .i18n.phonenumbers.CountryCodeInfo country_code_info = 6;
    {PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.country_code_info_), _Internal::kHasBitsOffset + 1, 3,
    (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }}, {{
    {::_pbi::TcParser::GetTable<::i18n::phonenumbers::PrefixesInfo>()},
    {::_pbi::TcParser::GetTable<::i18n::phonenumbers::LanguageCodeInfo>()},
    {::_pbi::TcParser::GetTable<::i18n::phonenumbers::CountriesInfo>()},
    {::_pbi::TcParser::GetTable<::i18n::phonenumbers::CountryCodeInfo>()},
  }}, {{
  }},
};

PROTOBUF_NOINLINE void GeocodingInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.GeocodingInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.prefixes_info_.Clear();
  _impl_.languages_.Clear();
  _impl_.countries_info_.Clear();
  _impl_.countries_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(_impl_.language_code_info_ != nullptr);
      _impl_.language_code_info_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(_impl_.country_code_info_ != nullptr);
      _impl_.country_code_info_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::uint8_t* GeocodingInfo::_InternalSerialize(
            const MessageLite& base, ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) {
          const GeocodingInfo& this_ = static_cast<const GeocodingInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::uint8_t* GeocodingInfo::_InternalSerialize(
            ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) const {
          const GeocodingInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.GeocodingInfo)
          ::uint32_t cached_has_bits = 0;
          (void)cached_has_bits;

          // repeated .i18n.phonenumbers.PrefixesInfo prefixes_info = 1;
          for (unsigned i = 0, n = static_cast<unsigned>(
                                   this_._internal_prefixes_info_size());
               i < n; i++) {
            const auto& repfield = this_._internal_prefixes_info().Get(i);
            target =
                ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
                    1, repfield, repfield.GetCachedSize(),
                    target, stream);
          }

          // repeated string languages = 2;
          for (int i = 0, n = this_._internal_languages_size(); i < n; ++i) {
            const auto& s = this_._internal_languages().Get(i);
            target = stream->WriteString(2, s, target);
          }

          cached_has_bits = this_._impl_._has_bits_[0];
          // required .i18n.phonenumbers.LanguageCodeInfo language_code_info = 3;
          if (cached_has_bits & 0x00000001u) {
            target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
                3, *this_._impl_.language_code_info_, this_._impl_.language_code_info_->GetCachedSize(), target,
                stream);
          }

          // repeated .i18n.phonenumbers.CountriesInfo countries_info = 4;
          for (unsigned i = 0, n = static_cast<unsigned>(
                                   this_._internal_countries_info_size());
               i < n; i++) {
            const auto& repfield = this_._internal_countries_info().Get(i);
            target =
                ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
                    4, repfield, repfield.GetCachedSize(),
                    target, stream);
          }

          // repeated int32 countries = 5;
          for (int i = 0, n = this_._internal_countries_size(); i < n; ++i) {
            target = stream->EnsureSpace(target);
            target = ::_pbi::WireFormatLite::WriteInt32ToArray(
                5, this_._internal_countries().Get(i), target);
          }

          // required .i18n.phonenumbers.CountryCodeInfo country_code_info = 6;
          if (cached_has_bits & 0x00000002u) {
            target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
                6, *this_._impl_.country_code_info_, this_._impl_.country_code_info_->GetCachedSize(), target,
                stream);
          }

          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            target = stream->WriteRaw(
                this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
                static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
          }
          // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.GeocodingInfo)
          return target;
        }

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::size_t GeocodingInfo::ByteSizeLong(const MessageLite& base) {
          const GeocodingInfo& this_ = static_cast<const GeocodingInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::size_t GeocodingInfo::ByteSizeLong() const {
          const GeocodingInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.GeocodingInfo)
          ::size_t total_size = 0;

          ::uint32_t cached_has_bits = 0;
          // Prevent compiler warnings about cached_has_bits being unused
          (void)cached_has_bits;

          ::_pbi::Prefetch5LinesFrom7Lines(&this_);
           {
            // repeated .i18n.phonenumbers.PrefixesInfo prefixes_info = 1;
            {
              total_size += 1UL * this_._internal_prefixes_info_size();
              for (const auto& msg : this_._internal_prefixes_info()) {
                total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
              }
            }
            // repeated string languages = 2;
            {
              total_size +=
                  1 * ::google::protobuf::internal::FromIntSize(this_._internal_languages().size());
              for (int i = 0, n = this_._internal_languages().size(); i < n; ++i) {
                total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
                    this_._internal_languages().Get(i));
              }
            }
            // repeated .i18n.phonenumbers.CountriesInfo countries_info = 4;
            {
              total_size += 1UL * this_._internal_countries_info_size();
              for (const auto& msg : this_._internal_countries_info()) {
                total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
              }
            }
            // repeated int32 countries = 5;
            {
              std::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
                  this_._internal_countries());
              std::size_t tag_size = std::size_t{1} *
                  ::_pbi::FromIntSize(this_._internal_countries_size());
              total_size += tag_size + data_size;
            }
          }
          cached_has_bits = this_._impl_._has_bits_[0];
          if (cached_has_bits & 0x00000003u) {
            // required .i18n.phonenumbers.LanguageCodeInfo language_code_info = 3;
            if (cached_has_bits & 0x00000001u) {
              total_size += 1 +
                            ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.language_code_info_);
            }
            // required .i18n.phonenumbers.CountryCodeInfo country_code_info = 6;
            if (cached_has_bits & 0x00000002u) {
              total_size += 1 +
                            ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.country_code_info_);
            }
          }
          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
          }
          this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
          return total_size;
        }

void GeocodingInfo::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<GeocodingInfo*>(&to_msg);
  auto& from = static_cast<const GeocodingInfo&>(from_msg);
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.GeocodingInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_prefixes_info()->MergeFrom(
      from._internal_prefixes_info());
  _this->_internal_mutable_languages()->MergeFrom(from._internal_languages());
  _this->_internal_mutable_countries_info()->MergeFrom(
      from._internal_countries_info());
  _this->_internal_mutable_countries()->MergeFrom(from._internal_countries());
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      ABSL_DCHECK(from._impl_.language_code_info_ != nullptr);
      if (_this->_impl_.language_code_info_ == nullptr) {
        _this->_impl_.language_code_info_ =
            ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::LanguageCodeInfo>(arena, *from._impl_.language_code_info_);
      } else {
        _this->_impl_.language_code_info_->MergeFrom(*from._impl_.language_code_info_);
      }
    }
    if (cached_has_bits & 0x00000002u) {
      ABSL_DCHECK(from._impl_.country_code_info_ != nullptr);
      if (_this->_impl_.country_code_info_ == nullptr) {
        _this->_impl_.country_code_info_ =
            ::google::protobuf::MessageLite::CopyConstruct<::i18n::phonenumbers::CountryCodeInfo>(arena, *from._impl_.country_code_info_);
      } else {
        _this->_impl_.country_code_info_->MergeFrom(*from._impl_.country_code_info_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void GeocodingInfo::CopyFrom(const GeocodingInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.GeocodingInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool GeocodingInfo::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const GeocodingInfo&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_prefixes_info()))
    return false;
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_countries_info()))
    return false;
  if ((this_._impl_._has_bits_[0] & 0x00000001u) != 0) {
    if (!this_._impl_.language_code_info_->IsInitialized()) return false;
  }
  if ((this_._impl_._has_bits_[0] & 0x00000002u) != 0) {
    if (!this_._impl_.country_code_info_->IsInitialized()) return false;
  }
  return true;
}

void GeocodingInfo::InternalSwap(GeocodingInfo* PROTOBUF_RESTRICT other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.prefixes_info_.InternalSwap(&other->_impl_.prefixes_info_);
  _impl_.languages_.InternalSwap(&other->_impl_.languages_);
  _impl_.countries_info_.InternalSwap(&other->_impl_.countries_info_);
  _impl_.countries_.InternalSwap(&other->_impl_.countries_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.country_code_info_)
      + sizeof(GeocodingInfo::_impl_.country_code_info_)
      - PROTOBUF_FIELD_OFFSET(GeocodingInfo, _impl_.language_code_info_)>(
          reinterpret_cast<char*>(&_impl_.language_code_info_),
          reinterpret_cast<char*>(&other->_impl_.language_code_info_));
}

// ===================================================================

class PrefixesInfo::_Internal {
 public:
  using HasBits =
      decltype(std::declval<PrefixesInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000003) ^ 0x00000003) != 0;
  }
};

PrefixesInfo::PrefixesInfo(::google::protobuf::Arena* arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.PrefixesInfo)
}
inline PROTOBUF_NDEBUG_INLINE PrefixesInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
    const Impl_& from, const ::i18n::phonenumbers::PrefixesInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        prefixes_{visibility, arena, from.prefixes_},
        descriptions_{visibility, arena, from.descriptions_},
        lengths_{visibility, arena, from.lengths_} {}

PrefixesInfo::PrefixesInfo(
    ::google::protobuf::Arena* arena,
    const PrefixesInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PrefixesInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, prefixes_num_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, prefixes_num_),
           offsetof(Impl_, lengths_num_) -
               offsetof(Impl_, prefixes_num_) +
               sizeof(Impl_::lengths_num_));

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.PrefixesInfo)
}
inline PROTOBUF_NDEBUG_INLINE PrefixesInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility,
    ::google::protobuf::Arena* arena)
      : _cached_size_{0},
        prefixes_{visibility, arena},
        descriptions_{visibility, arena},
        lengths_{visibility, arena} {}

inline void PrefixesInfo::SharedCtor(::_pb::Arena* arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, prefixes_num_),
           0,
           offsetof(Impl_, lengths_num_) -
               offsetof(Impl_, prefixes_num_) +
               sizeof(Impl_::lengths_num_));
}
PrefixesInfo::~PrefixesInfo() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.PrefixesInfo)
  SharedDtor(*this);
}
inline void PrefixesInfo::SharedDtor(MessageLite& self) {
  PrefixesInfo& this_ = static_cast<PrefixesInfo&>(self);
  this_._internal_metadata_.Delete<std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PrefixesInfo::PlacementNew_(const void*, void* mem,
                                        ::google::protobuf::Arena* arena) {
  return ::new (mem) PrefixesInfo(arena);
}
constexpr auto PrefixesInfo::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.prefixes_) +
          decltype(PrefixesInfo::_impl_.prefixes_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.descriptions_) +
          decltype(PrefixesInfo::_impl_.descriptions_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.lengths_) +
          decltype(PrefixesInfo::_impl_.lengths_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(PrefixesInfo), alignof(PrefixesInfo), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&PrefixesInfo::PlacementNew_,
                                 sizeof(PrefixesInfo),
                                 alignof(PrefixesInfo));
  }
}
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite<31> PrefixesInfo::_class_data_ = {
    {
        &_PrefixesInfo_default_instance_._instance,
        &_table_.header,
        nullptr,  // OnDemandRegisterArenaDtor
        PrefixesInfo::IsInitializedImpl,
        &PrefixesInfo::MergeImpl,
        ::google::protobuf::MessageLite::GetNewImpl<PrefixesInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
        &PrefixesInfo::SharedDtor,
        ::google::protobuf::MessageLite::GetClearImpl<PrefixesInfo>(), &PrefixesInfo::ByteSizeLong,
            &PrefixesInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
        PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_._cached_size_),
        true,
    },
    "i18n.phonenumbers.PrefixesInfo",
};
const ::google::protobuf::internal::ClassData* PrefixesInfo::GetClassData() const {
  return _class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 5, 0, 0, 2> PrefixesInfo::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_._has_bits_),
    0, // no _extensions_
    5, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967264,  // skipmap
    offsetof(decltype(_table_), field_entries),
    5,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    _class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallbackLite,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::i18n::phonenumbers::PrefixesInfo>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // required int32 prefixes_num = 1;
    {::_pbi::TcParser::FastV32S1,
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.prefixes_num_)}},
    // repeated int32 prefixes = 2;
    {::_pbi::TcParser::FastV32R1,
     {16, 63, 0, PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.prefixes_)}},
    // repeated string descriptions = 3;
    {::_pbi::TcParser::FastBR1,
     {26, 63, 0, PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.descriptions_)}},
    // required int32 lengths_num = 4;
    {::_pbi::TcParser::FastV32S1,
     {32, 1, 0, PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.lengths_num_)}},
    // repeated int32 lengths = 5;
    {::_pbi::TcParser::FastV32R1,
     {40, 63, 0, PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.lengths_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // required int32 prefixes_num = 1;
    {PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.prefixes_num_), _Internal::kHasBitsOffset + 0, 0,
    (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated int32 prefixes = 2;
    {PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.prefixes_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    // repeated string descriptions = 3;
    {PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.descriptions_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
    // required int32 lengths_num = 4;
    {PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.lengths_num_), _Internal::kHasBitsOffset + 1, 0,
    (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated int32 lengths = 5;
    {PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.lengths_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};

PROTOBUF_NOINLINE void PrefixesInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.PrefixesInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.prefixes_.Clear();
  _impl_.descriptions_.Clear();
  _impl_.lengths_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    ::memset(&_impl_.prefixes_num_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.lengths_num_) -
        reinterpret_cast<char*>(&_impl_.prefixes_num_)) + sizeof(_impl_.lengths_num_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::uint8_t* PrefixesInfo::_InternalSerialize(
            const MessageLite& base, ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) {
          const PrefixesInfo& this_ = static_cast<const PrefixesInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::uint8_t* PrefixesInfo::_InternalSerialize(
            ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) const {
          const PrefixesInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.PrefixesInfo)
          ::uint32_t cached_has_bits = 0;
          (void)cached_has_bits;

          cached_has_bits = this_._impl_._has_bits_[0];
          // required int32 prefixes_num = 1;
          if (cached_has_bits & 0x00000001u) {
            target = ::google::protobuf::internal::WireFormatLite::
                WriteInt32ToArrayWithField<1>(
                    stream, this_._internal_prefixes_num(), target);
          }

          // repeated int32 prefixes = 2;
          for (int i = 0, n = this_._internal_prefixes_size(); i < n; ++i) {
            target = stream->EnsureSpace(target);
            target = ::_pbi::WireFormatLite::WriteInt32ToArray(
                2, this_._internal_prefixes().Get(i), target);
          }

          // repeated string descriptions = 3;
          for (int i = 0, n = this_._internal_descriptions_size(); i < n; ++i) {
            const auto& s = this_._internal_descriptions().Get(i);
            target = stream->WriteString(3, s, target);
          }

          // required int32 lengths_num = 4;
          if (cached_has_bits & 0x00000002u) {
            target = ::google::protobuf::internal::WireFormatLite::
                WriteInt32ToArrayWithField<4>(
                    stream, this_._internal_lengths_num(), target);
          }

          // repeated int32 lengths = 5;
          for (int i = 0, n = this_._internal_lengths_size(); i < n; ++i) {
            target = stream->EnsureSpace(target);
            target = ::_pbi::WireFormatLite::WriteInt32ToArray(
                5, this_._internal_lengths().Get(i), target);
          }

          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            target = stream->WriteRaw(
                this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
                static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
          }
          // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.PrefixesInfo)
          return target;
        }

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::size_t PrefixesInfo::ByteSizeLong(const MessageLite& base) {
          const PrefixesInfo& this_ = static_cast<const PrefixesInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::size_t PrefixesInfo::ByteSizeLong() const {
          const PrefixesInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.PrefixesInfo)
          ::size_t total_size = 0;

          ::uint32_t cached_has_bits = 0;
          // Prevent compiler warnings about cached_has_bits being unused
          (void)cached_has_bits;

          ::_pbi::Prefetch5LinesFrom7Lines(&this_);
           {
            // repeated int32 prefixes = 2;
            {
              std::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
                  this_._internal_prefixes());
              std::size_t tag_size = std::size_t{1} *
                  ::_pbi::FromIntSize(this_._internal_prefixes_size());
              total_size += tag_size + data_size;
            }
            // repeated string descriptions = 3;
            {
              total_size +=
                  1 * ::google::protobuf::internal::FromIntSize(this_._internal_descriptions().size());
              for (int i = 0, n = this_._internal_descriptions().size(); i < n; ++i) {
                total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
                    this_._internal_descriptions().Get(i));
              }
            }
            // repeated int32 lengths = 5;
            {
              std::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
                  this_._internal_lengths());
              std::size_t tag_size = std::size_t{1} *
                  ::_pbi::FromIntSize(this_._internal_lengths_size());
              total_size += tag_size + data_size;
            }
          }
          cached_has_bits = this_._impl_._has_bits_[0];
          if (cached_has_bits & 0x00000003u) {
            // required int32 prefixes_num = 1;
            if (cached_has_bits & 0x00000001u) {
              total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
                  this_._internal_prefixes_num());
            }
            // required int32 lengths_num = 4;
            if (cached_has_bits & 0x00000002u) {
              total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
                  this_._internal_lengths_num());
            }
          }
          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
          }
          this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
          return total_size;
        }

void PrefixesInfo::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PrefixesInfo*>(&to_msg);
  auto& from = static_cast<const PrefixesInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.PrefixesInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_prefixes()->MergeFrom(from._internal_prefixes());
  _this->_internal_mutable_descriptions()->MergeFrom(from._internal_descriptions());
  _this->_internal_mutable_lengths()->MergeFrom(from._internal_lengths());
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000003u) {
    if (cached_has_bits & 0x00000001u) {
      _this->_impl_.prefixes_num_ = from._impl_.prefixes_num_;
    }
    if (cached_has_bits & 0x00000002u) {
      _this->_impl_.lengths_num_ = from._impl_.lengths_num_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void PrefixesInfo::CopyFrom(const PrefixesInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.PrefixesInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool PrefixesInfo::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const PrefixesInfo&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void PrefixesInfo::InternalSwap(PrefixesInfo* PROTOBUF_RESTRICT other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.prefixes_.InternalSwap(&other->_impl_.prefixes_);
  _impl_.descriptions_.InternalSwap(&other->_impl_.descriptions_);
  _impl_.lengths_.InternalSwap(&other->_impl_.lengths_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.lengths_num_)
      + sizeof(PrefixesInfo::_impl_.lengths_num_)
      - PROTOBUF_FIELD_OFFSET(PrefixesInfo, _impl_.prefixes_num_)>(
          reinterpret_cast<char*>(&_impl_.prefixes_num_),
          reinterpret_cast<char*>(&other->_impl_.prefixes_num_));
}

// ===================================================================

class LanguageCodeInfo::_Internal {
 public:
  using HasBits =
      decltype(std::declval<LanguageCodeInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
  }
};

LanguageCodeInfo::LanguageCodeInfo(::google::protobuf::Arena* arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.LanguageCodeInfo)
}
inline PROTOBUF_NDEBUG_INLINE LanguageCodeInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
    const Impl_& from, const ::i18n::phonenumbers::LanguageCodeInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        language_codes_{visibility, arena, from.language_codes_} {}

LanguageCodeInfo::LanguageCodeInfo(
    ::google::protobuf::Arena* arena,
    const LanguageCodeInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LanguageCodeInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.language_codes_num_ = from._impl_.language_codes_num_;

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.LanguageCodeInfo)
}
inline PROTOBUF_NDEBUG_INLINE LanguageCodeInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility,
    ::google::protobuf::Arena* arena)
      : _cached_size_{0},
        language_codes_{visibility, arena} {}

inline void LanguageCodeInfo::SharedCtor(::_pb::Arena* arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.language_codes_num_ = {};
}
LanguageCodeInfo::~LanguageCodeInfo() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.LanguageCodeInfo)
  SharedDtor(*this);
}
inline void LanguageCodeInfo::SharedDtor(MessageLite& self) {
  LanguageCodeInfo& this_ = static_cast<LanguageCodeInfo&>(self);
  this_._internal_metadata_.Delete<std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* LanguageCodeInfo::PlacementNew_(const void*, void* mem,
                                        ::google::protobuf::Arena* arena) {
  return ::new (mem) LanguageCodeInfo(arena);
}
constexpr auto LanguageCodeInfo::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_.language_codes_) +
          decltype(LanguageCodeInfo::_impl_.language_codes_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(LanguageCodeInfo), alignof(LanguageCodeInfo), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&LanguageCodeInfo::PlacementNew_,
                                 sizeof(LanguageCodeInfo),
                                 alignof(LanguageCodeInfo));
  }
}
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite<35> LanguageCodeInfo::_class_data_ = {
    {
        &_LanguageCodeInfo_default_instance_._instance,
        &_table_.header,
        nullptr,  // OnDemandRegisterArenaDtor
        LanguageCodeInfo::IsInitializedImpl,
        &LanguageCodeInfo::MergeImpl,
        ::google::protobuf::MessageLite::GetNewImpl<LanguageCodeInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
        &LanguageCodeInfo::SharedDtor,
        ::google::protobuf::MessageLite::GetClearImpl<LanguageCodeInfo>(), &LanguageCodeInfo::ByteSizeLong,
            &LanguageCodeInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
        PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_._cached_size_),
        true,
    },
    "i18n.phonenumbers.LanguageCodeInfo",
};
const ::google::protobuf::internal::ClassData* LanguageCodeInfo::GetClassData() const {
  return _class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2> LanguageCodeInfo::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    _class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallbackLite,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::i18n::phonenumbers::LanguageCodeInfo>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated string language_codes = 2;
    {::_pbi::TcParser::FastBR1,
     {18, 63, 0, PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_.language_codes_)}},
    // required int32 language_codes_num = 1;
    {::_pbi::TcParser::FastV32S1,
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_.language_codes_num_)}},
  }}, {{
    65535, 65535
  }}, {{
    // required int32 language_codes_num = 1;
    {PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_.language_codes_num_), _Internal::kHasBitsOffset + 0, 0,
    (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated string language_codes = 2;
    {PROTOBUF_FIELD_OFFSET(LanguageCodeInfo, _impl_.language_codes_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
  }},
  // no aux_entries
  {{
  }},
};

PROTOBUF_NOINLINE void LanguageCodeInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.LanguageCodeInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.language_codes_.Clear();
  _impl_.language_codes_num_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::uint8_t* LanguageCodeInfo::_InternalSerialize(
            const MessageLite& base, ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) {
          const LanguageCodeInfo& this_ = static_cast<const LanguageCodeInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::uint8_t* LanguageCodeInfo::_InternalSerialize(
            ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) const {
          const LanguageCodeInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.LanguageCodeInfo)
          ::uint32_t cached_has_bits = 0;
          (void)cached_has_bits;

          cached_has_bits = this_._impl_._has_bits_[0];
          // required int32 language_codes_num = 1;
          if (cached_has_bits & 0x00000001u) {
            target = ::google::protobuf::internal::WireFormatLite::
                WriteInt32ToArrayWithField<1>(
                    stream, this_._internal_language_codes_num(), target);
          }

          // repeated string language_codes = 2;
          for (int i = 0, n = this_._internal_language_codes_size(); i < n; ++i) {
            const auto& s = this_._internal_language_codes().Get(i);
            target = stream->WriteString(2, s, target);
          }

          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            target = stream->WriteRaw(
                this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
                static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
          }
          // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.LanguageCodeInfo)
          return target;
        }

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::size_t LanguageCodeInfo::ByteSizeLong(const MessageLite& base) {
          const LanguageCodeInfo& this_ = static_cast<const LanguageCodeInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::size_t LanguageCodeInfo::ByteSizeLong() const {
          const LanguageCodeInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.LanguageCodeInfo)
          ::size_t total_size = 0;

          ::uint32_t cached_has_bits = 0;
          // Prevent compiler warnings about cached_has_bits being unused
          (void)cached_has_bits;

          ::_pbi::Prefetch5LinesFrom7Lines(&this_);
           {
            // repeated string language_codes = 2;
            {
              total_size +=
                  1 * ::google::protobuf::internal::FromIntSize(this_._internal_language_codes().size());
              for (int i = 0, n = this_._internal_language_codes().size(); i < n; ++i) {
                total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
                    this_._internal_language_codes().Get(i));
              }
            }
          }
           {
            // required int32 language_codes_num = 1;
            cached_has_bits = this_._impl_._has_bits_[0];
            if (cached_has_bits & 0x00000001u) {
              total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
                  this_._internal_language_codes_num());
            }
          }
          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
          }
          this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
          return total_size;
        }

void LanguageCodeInfo::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<LanguageCodeInfo*>(&to_msg);
  auto& from = static_cast<const LanguageCodeInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.LanguageCodeInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_language_codes()->MergeFrom(from._internal_language_codes());
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    _this->_impl_.language_codes_num_ = from._impl_.language_codes_num_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void LanguageCodeInfo::CopyFrom(const LanguageCodeInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.LanguageCodeInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool LanguageCodeInfo::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const LanguageCodeInfo&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void LanguageCodeInfo::InternalSwap(LanguageCodeInfo* PROTOBUF_RESTRICT other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.language_codes_.InternalSwap(&other->_impl_.language_codes_);
        swap(_impl_.language_codes_num_, other->_impl_.language_codes_num_);
}

// ===================================================================

class CountriesInfo::_Internal {
 public:
  using HasBits =
      decltype(std::declval<CountriesInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
  }
};

CountriesInfo::CountriesInfo(::google::protobuf::Arena* arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.CountriesInfo)
}
inline PROTOBUF_NDEBUG_INLINE CountriesInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
    const Impl_& from, const ::i18n::phonenumbers::CountriesInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        country_languages_{visibility, arena, from.country_languages_} {}

CountriesInfo::CountriesInfo(
    ::google::protobuf::Arena* arena,
    const CountriesInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  CountriesInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.country_languages_num_ = from._impl_.country_languages_num_;

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.CountriesInfo)
}
inline PROTOBUF_NDEBUG_INLINE CountriesInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility,
    ::google::protobuf::Arena* arena)
      : _cached_size_{0},
        country_languages_{visibility, arena} {}

inline void CountriesInfo::SharedCtor(::_pb::Arena* arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.country_languages_num_ = {};
}
CountriesInfo::~CountriesInfo() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.CountriesInfo)
  SharedDtor(*this);
}
inline void CountriesInfo::SharedDtor(MessageLite& self) {
  CountriesInfo& this_ = static_cast<CountriesInfo&>(self);
  this_._internal_metadata_.Delete<std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* CountriesInfo::PlacementNew_(const void*, void* mem,
                                        ::google::protobuf::Arena* arena) {
  return ::new (mem) CountriesInfo(arena);
}
constexpr auto CountriesInfo::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_.country_languages_) +
          decltype(CountriesInfo::_impl_.country_languages_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(CountriesInfo), alignof(CountriesInfo), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&CountriesInfo::PlacementNew_,
                                 sizeof(CountriesInfo),
                                 alignof(CountriesInfo));
  }
}
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite<32> CountriesInfo::_class_data_ = {
    {
        &_CountriesInfo_default_instance_._instance,
        &_table_.header,
        nullptr,  // OnDemandRegisterArenaDtor
        CountriesInfo::IsInitializedImpl,
        &CountriesInfo::MergeImpl,
        ::google::protobuf::MessageLite::GetNewImpl<CountriesInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
        &CountriesInfo::SharedDtor,
        ::google::protobuf::MessageLite::GetClearImpl<CountriesInfo>(), &CountriesInfo::ByteSizeLong,
            &CountriesInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
        PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_._cached_size_),
        true,
    },
    "i18n.phonenumbers.CountriesInfo",
};
const ::google::protobuf::internal::ClassData* CountriesInfo::GetClassData() const {
  return _class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2> CountriesInfo::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    _class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallbackLite,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::i18n::phonenumbers::CountriesInfo>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated string country_languages = 2;
    {::_pbi::TcParser::FastBR1,
     {18, 63, 0, PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_.country_languages_)}},
    // required int32 country_languages_num = 1;
    {::_pbi::TcParser::FastV32S1,
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_.country_languages_num_)}},
  }}, {{
    65535, 65535
  }}, {{
    // required int32 country_languages_num = 1;
    {PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_.country_languages_num_), _Internal::kHasBitsOffset + 0, 0,
    (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated string country_languages = 2;
    {PROTOBUF_FIELD_OFFSET(CountriesInfo, _impl_.country_languages_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
  }},
  // no aux_entries
  {{
  }},
};

PROTOBUF_NOINLINE void CountriesInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.CountriesInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.country_languages_.Clear();
  _impl_.country_languages_num_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::uint8_t* CountriesInfo::_InternalSerialize(
            const MessageLite& base, ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) {
          const CountriesInfo& this_ = static_cast<const CountriesInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::uint8_t* CountriesInfo::_InternalSerialize(
            ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) const {
          const CountriesInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.CountriesInfo)
          ::uint32_t cached_has_bits = 0;
          (void)cached_has_bits;

          cached_has_bits = this_._impl_._has_bits_[0];
          // required int32 country_languages_num = 1;
          if (cached_has_bits & 0x00000001u) {
            target = ::google::protobuf::internal::WireFormatLite::
                WriteInt32ToArrayWithField<1>(
                    stream, this_._internal_country_languages_num(), target);
          }

          // repeated string country_languages = 2;
          for (int i = 0, n = this_._internal_country_languages_size(); i < n; ++i) {
            const auto& s = this_._internal_country_languages().Get(i);
            target = stream->WriteString(2, s, target);
          }

          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            target = stream->WriteRaw(
                this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
                static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
          }
          // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.CountriesInfo)
          return target;
        }

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::size_t CountriesInfo::ByteSizeLong(const MessageLite& base) {
          const CountriesInfo& this_ = static_cast<const CountriesInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::size_t CountriesInfo::ByteSizeLong() const {
          const CountriesInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.CountriesInfo)
          ::size_t total_size = 0;

          ::uint32_t cached_has_bits = 0;
          // Prevent compiler warnings about cached_has_bits being unused
          (void)cached_has_bits;

          ::_pbi::Prefetch5LinesFrom7Lines(&this_);
           {
            // repeated string country_languages = 2;
            {
              total_size +=
                  1 * ::google::protobuf::internal::FromIntSize(this_._internal_country_languages().size());
              for (int i = 0, n = this_._internal_country_languages().size(); i < n; ++i) {
                total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
                    this_._internal_country_languages().Get(i));
              }
            }
          }
           {
            // required int32 country_languages_num = 1;
            cached_has_bits = this_._impl_._has_bits_[0];
            if (cached_has_bits & 0x00000001u) {
              total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
                  this_._internal_country_languages_num());
            }
          }
          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
          }
          this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
          return total_size;
        }

void CountriesInfo::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<CountriesInfo*>(&to_msg);
  auto& from = static_cast<const CountriesInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.CountriesInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_country_languages()->MergeFrom(from._internal_country_languages());
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    _this->_impl_.country_languages_num_ = from._impl_.country_languages_num_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void CountriesInfo::CopyFrom(const CountriesInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.CountriesInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool CountriesInfo::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const CountriesInfo&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void CountriesInfo::InternalSwap(CountriesInfo* PROTOBUF_RESTRICT other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.country_languages_.InternalSwap(&other->_impl_.country_languages_);
        swap(_impl_.country_languages_num_, other->_impl_.country_languages_num_);
}

// ===================================================================

class CountryCodeInfo::_Internal {
 public:
  using HasBits =
      decltype(std::declval<CountryCodeInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0;
  }
};

CountryCodeInfo::CountryCodeInfo(::google::protobuf::Arena* arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:i18n.phonenumbers.CountryCodeInfo)
}
inline PROTOBUF_NDEBUG_INLINE CountryCodeInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
    const Impl_& from, const ::i18n::phonenumbers::CountryCodeInfo& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        country_codes_{visibility, arena, from.country_codes_} {}

CountryCodeInfo::CountryCodeInfo(
    ::google::protobuf::Arena* arena,
    const CountryCodeInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, _class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  CountryCodeInfo* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.country_codes_num_ = from._impl_.country_codes_num_;

  // @@protoc_insertion_point(copy_constructor:i18n.phonenumbers.CountryCodeInfo)
}
inline PROTOBUF_NDEBUG_INLINE CountryCodeInfo::Impl_::Impl_(
    ::google::protobuf::internal::InternalVisibility visibility,
    ::google::protobuf::Arena* arena)
      : _cached_size_{0},
        country_codes_{visibility, arena} {}

inline void CountryCodeInfo::SharedCtor(::_pb::Arena* arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.country_codes_num_ = {};
}
CountryCodeInfo::~CountryCodeInfo() {
  // @@protoc_insertion_point(destructor:i18n.phonenumbers.CountryCodeInfo)
  SharedDtor(*this);
}
inline void CountryCodeInfo::SharedDtor(MessageLite& self) {
  CountryCodeInfo& this_ = static_cast<CountryCodeInfo&>(self);
  this_._internal_metadata_.Delete<std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* CountryCodeInfo::PlacementNew_(const void*, void* mem,
                                        ::google::protobuf::Arena* arena) {
  return ::new (mem) CountryCodeInfo(arena);
}
constexpr auto CountryCodeInfo::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_.country_codes_) +
          decltype(CountryCodeInfo::_impl_.country_codes_)::
              InternalGetArenaOffset(
                  ::google::protobuf::MessageLite::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(CountryCodeInfo), alignof(CountryCodeInfo), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&CountryCodeInfo::PlacementNew_,
                                 sizeof(CountryCodeInfo),
                                 alignof(CountryCodeInfo));
  }
}
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite<34> CountryCodeInfo::_class_data_ = {
    {
        &_CountryCodeInfo_default_instance_._instance,
        &_table_.header,
        nullptr,  // OnDemandRegisterArenaDtor
        CountryCodeInfo::IsInitializedImpl,
        &CountryCodeInfo::MergeImpl,
        ::google::protobuf::MessageLite::GetNewImpl<CountryCodeInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
        &CountryCodeInfo::SharedDtor,
        ::google::protobuf::MessageLite::GetClearImpl<CountryCodeInfo>(), &CountryCodeInfo::ByteSizeLong,
            &CountryCodeInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
        PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_._cached_size_),
        true,
    },
    "i18n.phonenumbers.CountryCodeInfo",
};
const ::google::protobuf::internal::ClassData* CountryCodeInfo::GetClassData() const {
  return _class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2> CountryCodeInfo::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    _class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallbackLite,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::i18n::phonenumbers::CountryCodeInfo>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated int32 country_codes = 2;
    {::_pbi::TcParser::FastV32R1,
     {16, 63, 0, PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_.country_codes_)}},
    // required int32 country_codes_num = 1;
    {::_pbi::TcParser::FastV32S1,
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_.country_codes_num_)}},
  }}, {{
    65535, 65535
  }}, {{
    // required int32 country_codes_num = 1;
    {PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_.country_codes_num_), _Internal::kHasBitsOffset + 0, 0,
    (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated int32 country_codes = 2;
    {PROTOBUF_FIELD_OFFSET(CountryCodeInfo, _impl_.country_codes_), -1, 0,
    (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};

PROTOBUF_NOINLINE void CountryCodeInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:i18n.phonenumbers.CountryCodeInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.country_codes_.Clear();
  _impl_.country_codes_num_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::uint8_t* CountryCodeInfo::_InternalSerialize(
            const MessageLite& base, ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) {
          const CountryCodeInfo& this_ = static_cast<const CountryCodeInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::uint8_t* CountryCodeInfo::_InternalSerialize(
            ::uint8_t* target,
            ::google::protobuf::io::EpsCopyOutputStream* stream) const {
          const CountryCodeInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(serialize_to_array_start:i18n.phonenumbers.CountryCodeInfo)
          ::uint32_t cached_has_bits = 0;
          (void)cached_has_bits;

          cached_has_bits = this_._impl_._has_bits_[0];
          // required int32 country_codes_num = 1;
          if (cached_has_bits & 0x00000001u) {
            target = ::google::protobuf::internal::WireFormatLite::
                WriteInt32ToArrayWithField<1>(
                    stream, this_._internal_country_codes_num(), target);
          }

          // repeated int32 country_codes = 2;
          for (int i = 0, n = this_._internal_country_codes_size(); i < n; ++i) {
            target = stream->EnsureSpace(target);
            target = ::_pbi::WireFormatLite::WriteInt32ToArray(
                2, this_._internal_country_codes().Get(i), target);
          }

          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            target = stream->WriteRaw(
                this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).data(),
                static_cast<int>(this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
          }
          // @@protoc_insertion_point(serialize_to_array_end:i18n.phonenumbers.CountryCodeInfo)
          return target;
        }

#if defined(PROTOBUF_CUSTOM_VTABLE)
        ::size_t CountryCodeInfo::ByteSizeLong(const MessageLite& base) {
          const CountryCodeInfo& this_ = static_cast<const CountryCodeInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
        ::size_t CountryCodeInfo::ByteSizeLong() const {
          const CountryCodeInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
          // @@protoc_insertion_point(message_byte_size_start:i18n.phonenumbers.CountryCodeInfo)
          ::size_t total_size = 0;

          ::uint32_t cached_has_bits = 0;
          // Prevent compiler warnings about cached_has_bits being unused
          (void)cached_has_bits;

          ::_pbi::Prefetch5LinesFrom7Lines(&this_);
           {
            // repeated int32 country_codes = 2;
            {
              std::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
                  this_._internal_country_codes());
              std::size_t tag_size = std::size_t{1} *
                  ::_pbi::FromIntSize(this_._internal_country_codes_size());
              total_size += tag_size + data_size;
            }
          }
           {
            // required int32 country_codes_num = 1;
            cached_has_bits = this_._impl_._has_bits_[0];
            if (cached_has_bits & 0x00000001u) {
              total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
                  this_._internal_country_codes_num());
            }
          }
          if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
            total_size += this_._internal_metadata_.unknown_fields<std::string>(::google::protobuf::internal::GetEmptyString).size();
          }
          this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
          return total_size;
        }

void CountryCodeInfo::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<CountryCodeInfo*>(&to_msg);
  auto& from = static_cast<const CountryCodeInfo&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:i18n.phonenumbers.CountryCodeInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_country_codes()->MergeFrom(from._internal_country_codes());
  cached_has_bits = from._impl_._has_bits_[0];
  if (cached_has_bits & 0x00000001u) {
    _this->_impl_.country_codes_num_ = from._impl_.country_codes_num_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<std::string>(from._internal_metadata_);
}

void CountryCodeInfo::CopyFrom(const CountryCodeInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:i18n.phonenumbers.CountryCodeInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool CountryCodeInfo::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const CountryCodeInfo&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void CountryCodeInfo::InternalSwap(CountryCodeInfo* PROTOBUF_RESTRICT other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.country_codes_.InternalSwap(&other->_impl_.country_codes_);
        swap(_impl_.country_codes_num_, other->_impl_.country_codes_num_);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace phonenumbers
}  // namespace i18n
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
